FuseNBD
=======
A FUSE interface for accessing Network Block Devices
----------------------------------------------------

This program implements an NBD (Network Block Device) client in userspace that
exposes the exported drive and its partitions as files in a FUSE (Filesystem in
User Space) mountpoint.

This software is still in the alpha phase.  It hasn't been properly tested and
*may crash at any point, POSSIBLY LEADING TO DATA LOSS*.  You have been warned.

Usage
-----

Basic usage: fusenbd [options] mountpoint

In addition to the standard FUSE options, this program also accepts additional switches:

* --tcp=*host* or -t *host*  
  Specifies the remote host to connect to. Defaults to *localhost*.
* --port=*port* or -p *port*  
  Specifies the TCP port to use for the connection. Defaults to *10809*.
* --unix=*path* or -u *path*  
  Specifies the UNIX socket to connect to.  If this switch is specified, the TCP
  options are ignored.

Features
--------

Here's what it can do:

* Exposes the entire disk and each partition as separate files
* Supports (some) block device IOCTLs
* Reconnects on demand if the connection is lost
* No root access required (but your user must be allowed to mount FUSE filesystems)

Missing Features and Bugs
-------------------------

Don't get too excited, this is what FuseNBD **can't** do yet:

* GPT Support
* Caching system to improve I/O performance
* Using multiple connections to improve network performance

Building
--------

Just do the following:

1. premake4 gmake
2. make config=release

And that's it! That should have created a binary called "fusenbd" in the
directory.  If not, submit a bug report.  There's no installation option for
now, but you can copy the file manually.
